package com.shockweb.rpc.config;

/**
 * 远程微服务客户端调用配置
 * 
 * @author 彭明华
 * 2018年1月8日 创建
 */
public class ClientConfig {
	
	/**
	 * 注册服务器中心key
	 */
	private String registerCenterKey = null;
	/**
	 * 设置注册服务器中心key
	 * @param registerCenterKey
	 */
	public void setRegisterCenterKey(String registerCenterKey){
		this.registerCenterKey = registerCenterKey;
	}
	
	/**
	 * 注册服务器key
	 * @return
	 */
	public String getRegisterCenterKey(){
		return registerCenterKey;
	}

	/**
	 * 所有注册服务器集群的url，多个为逗号分隔
	 */
	private String registerServerUrls = null;
	
	/**
	 * 设置所有注册服务器集群的url，多个为逗号分隔
	 * @param registerServerUrls
	 */
	public void setRegisterServerUrls(String registerServerUrls){
		this.registerServerUrls = registerServerUrls;
	}
	
	/**
	 * 所有注册服务器集群的url，多个为逗号分隔
	 * @return
	 */
	public String getRegisterServerUrls(){
		return registerServerUrls;
	}


    /**
     * 客户端长连接活动的有效时间
     */
    private int activeTime = 30000;
    
    /**
     * 设置客户端长连接活动的有效时间
     * @param activeTime
     */
    public void setActiveTime(int activeTime){
    	this.activeTime = activeTime;
    }
    
	/**
	 * 客户端长连接活动的有效时间
	 * @return
	 */
	public int getActiveTime(){
		return activeTime;
	}
	
	/**
	 * 同步服务每个周期线程的等待时间
	 */
	public int syncThreadSleepTime = 1000;
	
	/**
	 * 设置同步服务每个周期线程的等待时间
	 * @param syncThreadSleepTime
	 */
	public void setSyncThreadSleepTime(int syncThreadSleepTime){
		this.syncThreadSleepTime = syncThreadSleepTime;
	}
	
	/**
	 * 同步服务每个周期线程的等待时间
	 * @return
	 */
	public int getSyncThreadSleepTime(){
		return syncThreadSleepTime;
	}
	
	/**
	 * 客户端建立连接的超时时间
	 */
	private int clientConnectTimeOut = 5000;
	
	/**
	 * 设置客户端建立连接的超时时间
	 * @param clientConnectTimeOut
	 */
	public void setClientConnectTimeOut(int clientConnectTimeOut){
		this.clientConnectTimeOut = clientConnectTimeOut;
	}
	
	/**
	 * 客户端建立连接的超时时间
	 * @return
	 */
	public int getClientConnectTimeOut() {
		return clientConnectTimeOut;
	}
	
	/**
	 * 客户端请求的超时时间
	 */
    private int clientTimeOut = 5000;
    
	/**
	 * 设置客户端请求的超时时间
	 * @param IdleStateTime
	 */
	public void setClientTimeOut(int clientTimeOut){
		this.clientTimeOut = clientTimeOut;
	}
	
	/**
	 * 客户端请求的超时时间
	 * @return
	 */
	public int getClientTimeOut() {
		return clientTimeOut;
	}
	

	/**
	 * 客户端等待时扫描时间结果
	 */
    private int clientSleepTime = 1;
    
	/**
	 * 设置客户端等待时扫描时间结果
	 * @param clientSleepTime
	 */
	public void setClientSleepTime(int clientSleepTime){
		this.clientSleepTime = clientSleepTime;
	}
	
	/**
	 * 客户端等待时扫描时间结果
	 * @return
	 */
	public int getClientSleepTime() {
		return clientSleepTime;
	}
	
	/**
	 * 长连接心跳发送时间
	 */
	private int clientIdleStateTime = 1000*10;
	
	/**
	 * 检测长连接心跳发送时间
	 * @param clientIdleStateTime
	 */
	public void setClientIdleStateTime(int clientIdleStateTime){
		this.clientIdleStateTime = clientIdleStateTime;
	}
	
	/**
	 * 长连接心跳发送时间
	 * @return
	 */
	public int getClientIdleStateTime() {
		return clientIdleStateTime;
	}


	
}
